package com.hspedu.abstract_;

//抽象类
/*
   1.当父类的某些方法，需要声明，但是又不确定如何实现时，可以将其声明为抽象方法，那么这个类就是抽象类
   2.用abstract关键字来修饰该方法，这个方法就是抽象方法，用abstract来修饰该类就是抽象类
 */

public class Abstract01 {
    public static void main(String[] args) {

    }
}

abstract class Animal{
    private String name;

    //构造器
    public Animal(String name){
        this.name = name;
    }

    //方法：
    //思考： 这里的eat，这里你实现了，其实没有什么意义
    //即： 父类的方法不确定性的问题
    //===> 考虑将该方法设计为抽象(abstract)方法
    //===> 所谓抽象方法就是没有实现的方法
    //===> 所为没有实现就是指，没有方法体
    //===> 当一个类中存在抽象方法时需要将该类声明为abstract类
    //===> 一般来说，抽象类会被继承由子类来实现来实现抽象方法


//    public void eat(){
//        System.out.println("这是一个动物但是不知道吃什么");
//    }
   //   public void eat();  error   缺少方法体，或声明为 abstract
    public abstract void eat();
}